//
// Created by WYLH2 on 2024/8/20.
//

#ifndef POCKETCUBE_H
#define POCKETCUBE_H

#include "PocketCubeCorner.h"
#include <vector>
#include <string>

class PocketCube {
public:
    PocketCube();
    void rotate(int direction, bool clockwise = true, int times = 1);
    [[nodiscard]] std::string show_front_up_right_view();

    void act_formula(const std::string& formula);

private:
    std::vector<PocketCubeCorner> corners;

    std::vector<PocketCubeCorner*> getCorners(int direction);
    PocketCubeCorner* getCornerByCoord(std::vector<int> coord);
};

#endif // POCKETCUBE_H
